package org.activequant.util.log;

import org.activequant.core.domainmodel.account.Order;
import org.activequant.core.domainmodel.data.Quote;
import org.activequant.core.domainmodel.events.OrderEvent;

/**
 * 
 * The AQ Logger interface defines methods and functionality 
 * for logging Busines Logic related events. <br>
 * <br>
 * Implementations of this could for example log all orders
 * to a separate reporting database or audited reporting system. <br>
 * An interface. Defines the following methods:
 * <ul>
 * <li>public void log(Order anOrder, OrderEvent anEvent);</li>
 * <li>public void log(Quote aQuote);</li>
 * </ul>
 * History<br>
 * - [05.10.2009] Created (Ulrich Staudinger)<br/>
 * 
 * 
 * @author Ulrich Staudinger
 * 
 * 
 *
 */
public interface IAQLogger {

	/**
	 * use this to log all types of order events. 
	 * @param anEvent
	 */
	public void log(Order anOrder, OrderEvent anEvent);

	/**
	 * Can be used to log a quote, for example for risk reasons 
	 * @param aQuote
	 */
	public void log(Quote aQuote);
	
}
